package com.poetize.plus.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.poetize.plus.entity.dto.CommentDTO;
import com.poetize.plus.entity.dto.page.CommentChildPageDTO;
import com.poetize.plus.entity.dto.page.CommentFloorPageDTO;
import com.poetize.plus.entity.dto.page.CommentPageDTO;
import com.poetize.plus.entity.po.Comment;
import com.poetize.plus.entity.vo.CommentFloorVO;
import com.poetize.plus.entity.vo.page.CommentPageVO;

import java.util.List;

/**
 * @author zuosy
 * @created 2024/4/3 14:10
 */
public interface CommentService extends IService<Comment> {

    /**
     * 评论分页数据
     * @param commentPageDTO
     * @return
     */
    Page<CommentPageVO> commentPage(CommentPageDTO commentPageDTO);

    /**
     * 删除评论
     * @param id
     * @return
     */
    Boolean deleteComment(Long id);

    /**
     * 获取最大楼层
     * @return
     */
    Integer getMaxFloor(Long articleId);

    /**
     * 获取文章评论
     * @param commentFloorPageDTO
     * @return
     */
    List<CommentFloorVO> getCommentByArticleId(CommentFloorPageDTO commentFloorPageDTO);

    /**
     * 查询子评论
     * @param commentChildPageDTO
     * @return
     */
    List<CommentFloorVO.CommentFloorChild> getChildComment(CommentChildPageDTO commentChildPageDTO);

    /**
     * 发表评论
     * @param commentDTO
     * @return
     */
    Boolean publish(CommentDTO commentDTO);
}
